The present invention relates to image acquisition systems, and more particularly to image acquisition systems suitable for machine vision systems that capture and process optical images.
Conventional image acquisition systems have been used for decades to acquire and process optical images. The conventional systems typically employ one or more video cameras that acquire an image and frame grabber boards that store and/or process the image. These systems are relatively easy to connect since the components of the system are well characterized, readily understood, and result in predictable performance.
Today's modern manufacturing and industrial installations are becoming increasingly automated to increase quality and reduce costs to better compete in the global market. Consequently, these installations typically employ machine vision systems which are used to monitor production processes, position selected components, and to perform other important manufacturing tasks. There is, however, a mismatch between the requirements of modern machine vision systems and the design goals of existing imaging technology typically used with machine vision systems.
Conventional image acquisition systems are designed to provide either a continuous flow of images or a predictable flow of images at a fixed rate determined by human awareness and response times, and at the lowest possible cost. With a new frame being transmitted every 1/60 second, missing lines and/or frames in such a system are tolerable because they are generally unnoticed by a human viewer. The fixed rate of image capture and delivery in conventional image acquisition systems is just fast enough to seem infinitely fast or seamless to human perception. Because errors that occur during image acquisition and transfer, such as dropped lines and frames, are only presented to a viewer for 1/60th of a second, and because the human eye acts as a time integrator, these intermittent errors are rarely perceptible to a human observer.
On the other hand, machine vision systems often make decisions based on a single still image. Because of this, machine vision systems require considerably higher resolution, contrast, and tolerance for data integrity than conventional image acquisition systems. For example, if the machine vision system is looking for normal process variations in manufactured parts, any imaging errors can result in the inappropriate rejection of a part. This leads to unnecessary part waste and an increase in the total costs of production.
Errors in an image acquisition system include imaging errors and processing errors. Processing errors, such as dropped lines and frames, arise from errors that occur as image data travels from the camera to the host computing system. Imaging errors arise in the camera itself or in the environment outside the camera. The former we refer to as sensor errors and the latter we refer to as scene errors.
Sensor errors typically arise from differences between photosensitive elements, (e.g., photosites in a charge-coupled device) that form part of the image acquisition system. As a result of these differences, a pair of photosensitive elements may respond differently to the same level of illumination. These differences arise from normal process variations in the manufacture of the photosensitive elements or from temperature differences between otherwise identical photosensitive elements.
Scene errors are those errors that arise from incorrectly illuminating a scene. Since ambient lighting conditions cannot be controlled to the same level of precision as that resolvable by a modern machine vision system, subtle variations in lighting levels or colors, due, for example, to aging of light sources, can degrade the performance of the machine vision system.
Unlike conventional image acquisition systems which obtain images either continuously or at regular intervals, machine vision systems can require images at unpredictable times. For example, in an automated inspection line, the objects to be inspected may not be spaced apart regularly enough on the conveyor belt to permit periodic image acquisition. Consequently, a machine vision system does not have the luxury of knowing, in advance, when an image is to be received.
A machine vision system should also be ready to acquire an image almost immediately upon request. For example, in the automated inspection line described above, if an object to be inspected is about to enter the camera's field of view, it is preferable that an image be acquired rapidly, before the object leaves the camera's field of view.
Because machine vision systems often have to obtain multiple images in rapid succession, a need exists to rapidly transmit image data to a processor of a host system. Prior art machine vision systems generally interrupt the host processor to obtain a starting memory address in which to place an image or portion thereof before the actual image acquisition and transfer can begin. In such systems, referred to as “software scatter/gather” systems, the host processor plays a significant role in image acquisition and transfer. This reliance on a scarce resource such as the host processor results in latency periods during which image acquisition and transfer cannot occur because the host processor is busy performing other tasks. These latency periods of uncertain duration make it difficult, if not impossible, for a machine vision system to repeatedly acquire an image on demand. When the latency period becomes excessively long, collisions can occur in the data path as data from subsequent images arrives faster than data from previous images can be processed. This results in lost or erroneous data.
In other machine vision systems, referred to as “hardware scatter/gather” systems, data transfer is performed by a direct memory address technique (DMA). Although these systems do not require the assistance of the host processor to access memory, they typically require that a memory segment be dedicated to their use. The disadvantage of this method is that the dedicated memory becomes unavailable for use by other processing tasks, even when it is not being used for image transfer.
In systems of this type, data collisions, as described above, can be ameliorated by dividing the dedicated memory into two blocks. This enables the system to place an incoming image into the first memory block while processing the image in the second memory block. Once the system finishes processing the system in the second block, it can begin processing the image in the first block, thereby freeing the second block to receive another incoming image. A disadvantage of this system type is that, when used in conjunction with a multithreaded computing environment, the complexity of programming this task becomes rapidly unmanageable.
It is also desirable for modern machine vision systems to autonomously determine whether or not an image should be acquired. For example, in an inspection line, the objects to be inspected may not be spaced at regular intervals. This raises the problem of how to acquire an image only when an object to be inspected is in the camera's field of view or in a particular region within the camera's field of view.
Prior art systems attempt to solve this problem by triggering the camera with an external sensor located outside of the machine vision system. These sensors, however, are typically difficult to interface reliably with the machine vision system. Moreover, latency associated with the machine vision system can make it difficult to reliably position the object to be inspected in the correct region of the camera's field of view.
Further important constraints imposed by conventional image acquisition systems include the relatively fixed field of view, relatively fixed frequency of image capture, fixed and relatively low rate of image transfer to host computer memory (or relatively expensive transfer of image), and lack of data integrity, arising, for example, from gray scale errors due to several causes including pixel jitter and skew, or from lost data such as dropped lines and frames.
Additionally, current machine vision systems are relatively expensive to install and operate. Another drawback of these systems is that they are unable to change the form of the acquired image data in real time, in other words, between each acquired frame or shot.
Modern machine vision systems have been developed to address some of these drawbacks. One example devised to ameliorate some of these drawbacks includes the use of expensive custom application-specific circuitry to provide high fidelity and low error image acquisition. These custom systems are typically very expensive to acquire and very difficult to integrate with existing machine vision systems.
There thus exists a need in the art for an image acquisition system suitable for use with modern machine vision systems that is flexible and provides for high fidelity asynchronous image acquisition and transfer.